Sliders (and level bars) currently don't request any size, so it's
up to the caller (or stylesheet) to explicitly set a size big
enough to fit the bar/handle.
That's rather unexpected, we should request the size we need ourselves.
Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7133
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2994>
cr.$dispose();
}
+ vfunc_get_preferred_height(_forWidth) {
+ const themeNode = this.get_theme_node();
+ const height = this._getPreferredHeight();
+ return themeNode.adjust_preferred_height(height, height);
+ }
+
+ vfunc_get_preferred_width(_forHeight) {
+ const themeNode = this.get_theme_node();
+ const width = this._getPreferredWidth();
+ return themeNode.adjust_preferred_width(width, width);
+ }
+
+ _getPreferredHeight() {
+ return this._barLevelHeight + this._barLevelBorderWidth;
+ }
+
+ _getPreferredWidth() {
+ return this._overdriveSeparatorWidth + this._barLevelBorderWidth;
+ }
+
_getCurrentValue() {
return this._value;
}
cr.$dispose();
}
+ _getPreferredHeight() {
+ const barHeight = super._getPreferredHeight();
+ const handleHeight = 2 * this._handleRadius + this._handleBorderWidth;
+ return Math.max(barHeight, handleHeight);
+ }
+
+ _getPreferredWidth() {
+ const barWidth = super._getPreferredWidth();
+ const handleWidth = 2 * this._handleRadius + this._handleBorderWidth;
+ return Math.max(barWidth, handleWidth);
+ }
+
vfunc_button_press_event(event) {
return this.startDragging(event);
}